<template>
	<view class="button-sp-area">
		<view class="uni-title">设置参数：</view>
		<view style="text-align: center;">
			<checkbox-group @change="changeOptions">
				<view style="text-align: center;">
					<checkbox value="showText" :checked="showText">显示文字</checkbox>	
					<checkbox value="openFlash" :checked="openFlash">打开闪光</checkbox>
				</view>
				<view style="text-align: center;">
					<checkbox value="autoFocus" :checked="autoFocus">自动对焦</checkbox>
					<checkbox value="saveImage" :checked="saveImage">返回图片</checkbox>
				</view>
			</checkbox-group>
		</view>
		<view class="uni-title">设置准确率（建议75-80）：</view>
		<view style="text-align: center;">
			<slider min="1" max="100" step="1" :value="accuracy" show-value @change="changeSlider" />
		</view>
		<button type="primary" plain="true" @click="showLPR()">点击识别车牌</button>
		<button type="primary" plain="true" @click="openCamera()">点击拍照</button>
		<view style="margin-top: 20px; padding: 20px;" v-show="this.success == true">
			<view style="text-align: center;color: lightslategray;">
				<text>车牌号：{{number}}</text>
			</view>
			<view style="text-align: center;color: lightslategray;">
				<text>车牌颜色：{{color}}</text>
			</view>
			<view style="text-align: center;color: lightslategray;">
				<text>图片地址：{{image}}</text>
			</view>
			<view style="text-align: center;color: lightslategray;">
				<image :src="imagePath"></image>
			</view>
		</view>
	</view>
</template>

<script>
	const modal = uni.requireNativePlugin('modal');
	// 获取 module
	var plateModule = uni.requireNativePlugin("wang-PlateModule")
	console.log('plateModule ->', plateModule)
	
	export default {
		data() {
			return {
				items: [
					{
						value: 'default',
						name: '默认',
						checked: 'true'
					},
					{
						value: 'scan',
						name: '经典动态扫描'
					},
				],
				success: false,
				number: "",
				color: "",
				image: "",
				imagePath: "",
				// 车牌识别默认参数
				interval: 500, // 识别间隔时间（单位：毫秒，默认为200）
				showText: true, // 是否显示提示文字
				autoFocus: true, // 是否自动对焦
				openFlash: false, // 是否打开闪光灯
				saveImage: true, // 是否保存并返回图片
				accuracy: 70, // 识别准确率(取值范围：0.0-1.0。准确率大于该值才返回结果，值越大识别越准确但也会越慢，需要测试出来最适合自己的准确率)
				quality: 80 // 图像压缩率(取值范围：0-100。 0:压缩100%，100:不压缩)
			}
		},
		methods: {
			changeActivity: function(e){
				var value = e.detail.value
				console.log('value ->', value)
				this.activity = value
			},
			changeOptions: function(e){
				var values = e.detail.value
				console.log('values ->', values)
				this.showText = values.indexOf('showText') > -1
				this.autoFocus = values.indexOf('autoFocus') > -1
				this.openFlash = values.indexOf('openFlash') > -1
				this.saveImage = values.indexOf('saveImage') > -1
			},
			changeSlider: function(e){
				var value = e.detail.value
				console.log('value ->', value)
				this.accuracy = value
			},
			openCamera() {
				console.log('openCamera...')
				uni.chooseImage({
					count: 1, //默认9
					sizeType: ['original', 'compressed'], //可以指定是原图还是压缩图，默认二者都有
					sourceType: ['camera'], //album 从相册选图，camera 使用相机，默认二者都有。如需直接开相机或直接选相册，请只使用一个选项
					success: function (res) {
						console.log(JSON.stringify(res.tempFilePaths));
					}
				});
			},
			showLPR() {
				console.log('showLPR...')
				
				let plateOptions = {
					'interval': this.interval, // 识别间隔时间（单位：毫秒，默认为200）
					'showText': this.showText, // 是否显示提示文字
					'openFlash': this.openFlash, // 是否打开闪光灯
					'autoFocus': this.autoFocus, // 是否自动对焦
					'saveImage': this.saveImage, // 是否保存并返回图片
					'accuracy': (this.accuracy/100).toFixed(2), // 识别准确率(取值范围：0.0-1.0。准确率大于该值才返回结果，值越大识别越准确但也会越慢，需要测试出来最适合自己的准确率)
					'quality': this.quality // 图像压缩率(取值范围：0-100。 0:压缩100%，100:不压缩)
				}
				
				console.log('plateOptions ->', plateOptions)

				//带参数
				plateModule.startPlate(
					plateOptions,
					(ret) => {
						console.log("showLPR result : ", ret);
						modal.toast({
							message: ret,
							duration: 1.5
						});
						//解析
						this.success = true;
						if (ret.number) {
							this.number = ret.number;
						}
						if (ret.color) {
							this.color = ret.color;
						}
						if (ret.image) {
							this.image = ret.image;
							this.imagePath = "file:///" + ret.image;
						}

					}
				);
			}
		}
	}
</script>

<style>

</style>
